package controller.tableModels;

import java.util.List;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import model.crudxml.Paciente;
import controller.PacienteCrudXML;

public class TableModelPaciente extends DefaultTableModel{

    private Vector dados;
    private Vector linha;
    private Vector nomesColunas;
    private List<Paciente> listaPacientes;
    private PacienteCrudXML pacienteCrudXML;
    
    public TableModelPaciente() {
        super();
        nomesColunas = new Vector();
        dados = new Vector();
        linha = new Vector();
        pacienteCrudXML = new PacienteCrudXML();
        construirDados();
        this.setDataVector(dados, nomesColunas);
    }
    
    public void atualizarDados(){
        nomesColunas = new Vector();
        dados = new Vector();
        linha = new Vector();
        pacienteCrudXML = new PacienteCrudXML();
        construirDados();
        this.setDataVector(dados, nomesColunas);
    }
    
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
    
    public Paciente getRow(int linha){
        Paciente pacienteAux = new Paciente();
        Vector linhaAux = new Vector();
        linhaAux = (Vector)dados.get(linha);
        
        pacienteAux.setId_paciente((int)linhaAux.get(0));
        pacienteAux.setNome_paciente((String)linhaAux.get(1));
        pacienteAux.setCpf_paciente((String)linhaAux.get(2));
        pacienteAux.setTelefone((String)linhaAux.get(3));
        pacienteAux.setCelular((String)linhaAux.get(4));
        pacienteAux.setEmail((String)linhaAux.get(5));
        pacienteAux.setEndereco((String)linhaAux.get(6));
        pacienteAux.setCidade((String)linhaAux.get(7));
        pacienteAux.setUf((String)linhaAux.get(8));
        pacienteAux.setConvenio((String)linhaAux.get(9));
        pacienteAux.setData_nascimento((String)linhaAux.get(10));
        
        return pacienteAux;
    }

    private void construirDados() {
        nomesColunas.add("Id");
        nomesColunas.add("Nome");
        nomesColunas.add("CPF");
        nomesColunas.add("Telefone");
        nomesColunas.add("Celular");
        nomesColunas.add("E-mail");
        nomesColunas.add("Endereço");
        nomesColunas.add("Cidade");
        nomesColunas.add("UF");
        nomesColunas.add("Convênio");
        nomesColunas.add("Data de nascimento");
        listaPacientes = pacienteCrudXML.listar();
        for (Paciente paciente : listaPacientes) {
            linha = new Vector();
            linha.add(paciente.getId_paciente());
            linha.add(paciente.getNome_paciente());
            linha.add(paciente.getCpf_paciente());
            linha.add(paciente.getTelefone());
            linha.add(paciente.getCelular());
            linha.add(paciente.getEmail());
            linha.add(paciente.getEndereco());
            linha.add(paciente.getCidade());
            linha.add(paciente.getUf());
            linha.add(paciente.getConvenio());
            linha.add(paciente.getData_nascimento());
            dados.add(linha);
        };
    }
    
}
